home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
vol_200
/
283_01
/
readme.doc
< prev
next >
Wrap
Text File
|
1988-12-15
|
7KB
|
132 lines
FAFNIR, Version 1.0
September 11, 1988, David C. Oshel
Original release.
FAFNIR, Version 3.0
December 18, 1988, David C. Oshel
Purpose: A general-purpose forms engine for data entry, with unlimited
data types, but standard field types are predefined as macros;
i.e., TEXT, DOLLAR, DATE, PHONE, SSN, DISPLAY, VIRTUAL, etc.
This is a C programmer's tool, distributed as source code.
The forms engine is a standard table-driven (C structure)
general-purpose routine, with slots for pointers to field
initialization, character validation, and field validation
functions, plus default field contents. The macros defined
in FAFNIR.H practically eliminate "essential details" micro-
management, by providing the programmer with standard types
and bullet-proof, automatic attention to structure syntax.
The graininess of standard types varies from YESNO, which
requires field name and x and y location of the field, to
FIELD, which accepts/requires ALL parameters for total
"free form" field type definition.
The engine uses dynamic allocation, but there is a tradeoff
in favor of programmer's peace of mind; the field names are
declared as type char *, and take up external storage to the
tune of number of fields times sizeof(char *). Fields must
be allocated before use, and data must be transferred from
fields to file before the allocation is released. You get
the not-so-primitives, the rest is a breeze.
Of course, the engine is still not as feature-loaded as most
of the better commercial forms packages, but it covers 99% of
the average end-user's data entry needs.
Portability: Screen and keyboard i/o source code is provided;
the engine runs all it's i/o through the CIAO library defined
in the FAFNIR make script. On a decent operating system, the
whole i/o package could be replaced by macros, but we will
probably never see that ideal universe in our lifetimes. In
the meantime, this is as close as you'll get to Elysian Fields
and Forms Nirvana on plain ol' practical Earth.
Do this: C>MAKEIT.BAT
Produces: FAFNIR4L.LIB - all i/o and forms editing, in LARGE model
FAFNIR.EXE - program to test and demonstrate a 2-page form
Executables, header files and pre-compiled: FAFNIR4x.LIB (Large
& Small) are included in the distribution, plus the magic macro
header file, FAFNIR.H. The demonstrations, and ES.EXE, a
primitive screen editor, are included as pre-compiled executables.
Requires: Microsoft C version 5.00, plus the standard MSC utilities
Microsoft Assembler (MASM) version 5.1 (two modules only)
MS-DOS 2.0
100% IBM PC-XT compatible screen RAM and ROM BIOS (but see
the Portability discussion, above)
Assumes: Hard disk.
You should have your compiler installed, and PATH and environment
variables for MS C compilation established. MAKEIT.BAT assumes
the total development environment is ready to go, including MAKE,
LINK and LIB for use with MASM 5.1 and MS C 5.0 or better.
Distributed:
Filename Description
-------- -----------------
CIAO.H Header file for screen & keyboard i/o, utilities, macros
CLAIROL.C Module lets users decide screen colors
COUNTIES.C Scrollbar menu returns IOWA D.O.T county code from list
CRYPT.C Hogg's Code encryption, decryption
CVIDEO.C Low-level screen i/o, see MSJ 11/1988, p. 1
DEMO.C FAFNIR.EXE source code, demonstrates a 2-page form
DEMO4L.EXE Demonstrate Fafnir forms i/o, large model
DEMO4S.EXE Demonstrate Fafnir forms i/o, small model
DLRCVT.C Convert dollar long int to dollar formatted string
ES.C Source code for a simple screen file editor (see KEYS.ASM)
ES.EXE Executable screen file editor (MS-DOS 2.0, Small Model)
FAF1.S Screen file for FAFNIR.EXE demo, page 1 of 2
FAF2.S Screen file for FAFNIR.EXE demo, page 2 of 2
FAFNIR Make script for compiling Fafnir libraries & programs
FAFNIR.C Source code for Elysian Fields and page editors
FAFNIR.DOC Reasonably accurate description of Fafnir, with history
FAFNIR.H Magic macros for Forms Nirvana, plus globals, etc.
FAFNIR4L.LIB Large model library, contains all object code listed here
FAFNIR4L.XRF cross-reference listing for .LIB, above
FAFNIR4S.LIB Small model library, contains all object code listed here
FAFNIR4S.XRF cross-reference listing for .LIB, above
FSTATS.C Source code, routine finds MS-DOS file size
GOTOXY.C Direct screen RAM and/or hardware gotoxy function
JDEMO4L.EXE Prove out MSJ direct video routines, large model
JDEMO4S.EXE Prove out MSJ direct video routines, small model
JULDAY.C Julian day number, day of week (after Carley Phillips)
JULIAN.C Astronomical version, returns double float, not long
KEYDEFS.C A menu routine, displays Fn keys w/descriptions, you pick
KEYIN.C Wait for keypress with background function
KEYS.ASM Assembler keyin routine for ES.EXE screen editor (Small)
KEYS.H Header file describes IBM PC extended key codes
LVIDEO.ASM Small Model, MASM 5.1 assembler direct video i/o
MAKEIT.BAT *** BUILD FAFNIR4x.LIB *** Run this if MS C 5.0 installed.
MSJDEMO.C Demo from MicroSoft Systems Journal, Nov. 88 (modified)
OLDEDITS.C Some obsolete line editing fns, still useful sometimes
README.DOC (you are!)
SAVESCRN.C Save current text screen, window, cursor
SCROLL.C Direct video, scroll region up or down one line
SOUND.C Standard sound effects and IBM PC tone generation primitives
SVIDEO.ASM Small Model, MASM 5.1 assembler direct video i/o
SWAPSCRN.C Seldom used swap visible with hidden screen buffer
TM.C Time and date routines
TYPEAFIL.C Read text file from disk and display in window, w/ PgUp
USSTATES.C Scrollbar menu returns 2-letter U.S. State abbrv. from list
VIDEO.H Header file for LVIDEO and CVIDEO routines
VIDINIT.C Minimum "must link" initialization for screen i/o
VIDINIT.H Header file for all CIAO screen i/o routines
WBOX.C Draws a box and establishes window inside it
WINDOW.C Window dimension routines
WINK.C Character out inside window routine
WPRINTF.C printf inside a window, with video attribute escape codes
WPUTS.C puts inside a window, interprets video attrib. escape codes
End of descriptions.